From 846e6dc0b1e531b90b6ad914b3fd0c2c2b989bc1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Sat, 4 Mar 2017 08:18:36 +0100 Subject: [PATCH] menus: Use gtk_widget_measure to measure widget sizes --- gtk/gtkmenu.c | 9 ++++++--- gtk/gtkmenubar.c | 16 ++++++++-------- gtk/gtkmenuitem.c | 16 ++++++++++------ 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c index 105f98d70d..2a87460e21 100644 --- a/gtk/gtkmenu.c +++ b/gtk/gtkmenu.c @@ -2771,8 +2771,10 @@ calculate_line_heights (GtkMenu *menu, part = avail_width / (r - l); - gtk_widget_get_preferred_height_for_width (child, part, - &child_min, &child_nat); + gtk_widget_measure (child, GTK_ORIENTATION_VERTICAL, + part, + &child_min, &child_nat, + NULL, NULL); gtk_menu_item_toggle_size_request (GTK_MENU_ITEM (child), &toggle_size); @@ -3028,7 +3030,8 @@ static void gtk_menu_measure (GtkWidget *widget, * case the toggle size request depends on the size * request of a child of the child (e.g. for ImageMenuItem) */ - gtk_widget_get_preferred_width (child, &child_min, &child_nat); + gtk_widget_measure (child, GTK_ORIENTATION_HORIZONTAL, + -1, &child_min, &child_nat, NULL, NULL); gtk_menu_item_toggle_size_request (GTK_MENU_ITEM (child), &toggle_size); max_toggle_size = MAX (max_toggle_size, toggle_size); diff --git a/gtk/gtkmenubar.c b/gtk/gtkmenubar.c index 2d9439cea6..d7470fcb44 100644 --- a/gtk/gtkmenubar.c +++ b/gtk/gtkmenubar.c @@ -454,10 +454,10 @@ gtk_menu_bar_allocate (GtkCssGadget *gadget, continue; request.data = child; - gtk_widget_get_preferred_width_for_height (child, - remaining_space.height, - &request.minimum_size, - &request.natural_size); + gtk_widget_measure (child, GTK_ORIENTATION_HORIZONTAL, + remaining_space.height, + &request.minimum_size, &request.natural_size, + NULL, NULL); gtk_menu_item_toggle_size_request (GTK_MENU_ITEM (child), &toggle_size); request.minimum_size += toggle_size; @@ -508,10 +508,10 @@ gtk_menu_bar_allocate (GtkCssGadget *gadget, continue; request.data = child; - gtk_widget_get_preferred_height_for_width (child, - remaining_space.width, - &request.minimum_size, - &request.natural_size); + gtk_widget_measure (child, GTK_ORIENTATION_VERTICAL, + remaining_space.width, + &request.minimum_size, &request.natural_size, + NULL, NULL); gtk_menu_item_toggle_size_request (GTK_MENU_ITEM (child), &toggle_size); request.minimum_size += toggle_size; diff --git a/gtk/gtkmenuitem.c b/gtk/gtkmenuitem.c index 16a6e16b71..ab780fcf4b 100644 --- a/gtk/gtkmenuitem.c +++ b/gtk/gtkmenuitem.c @@ -444,7 +444,8 @@ gtk_menu_item_real_get_width (GtkWidget *widget, { gint child_min, child_nat; - gtk_widget_get_preferred_width (child, &child_min, &child_nat); + gtk_widget_measure (child, GTK_ORIENTATION_HORIZONTAL, -1, + &child_min, &child_nat, NULL, NULL); if ((priv->submenu && !GTK_IS_MENU_BAR (parent)) || priv->reserve_indicator) { @@ -511,14 +512,17 @@ gtk_menu_item_real_get_height (GtkWidget *widget, if (for_size != -1) { avail_size -= arrow_size; - gtk_widget_get_preferred_height_for_width (child, - avail_size, - &child_min, - &child_nat); + gtk_widget_measure (child, GTK_ORIENTATION_VERTICAL, + avail_size, + &child_min, &child_nat, + NULL, NULL); } else { - gtk_widget_get_preferred_height (child, &child_min, &child_nat); + gtk_widget_measure (child, GTK_ORIENTATION_VERTICAL, -1, + &child_min, &child_nat, + NULL, NULL); + } min_height += child_min; -- 2.30.2